import request from './request'

/**
 * 获取课程列表
 * @param {Object} params 查询参数
 * @param {number} params.page 页码
 * @param {number} params.pageSize 每页数量
 * @param {string} params.name 课程名称
 * @param {number} params.subject 学科ID
 * @param {number} params.target 目标学员ID
 * @returns {Promise} 返回课程列表数据
 */
export const getCourseList = (params = {}) => {
  return request({
    url: '/courses',
    method: 'GET',
    params
  })
}

/**
 * 根据ID获取课程详情
 * @param {number} id 课程ID
 * @returns {Promise} 返回课程详情
 */
export const getCourseById = (id) => {
  return request({
    url: `/courses/${id}`,
    method: 'GET'
  })
}

/**
 * 获取所有课程（不分页）
 * @returns {Promise} 返回所有课程列表
 */
export const getAllCourses = () => {
  return request({
    url: '/courses/list',
    method: 'GET'
  })
}

/**
 * 创建课程
 * @param {Object} data 课程数据
 * @param {number} data.subject 学科ID
 * @param {string} data.name 课程名称
 * @param {number} data.price 课程价格
 * @param {number} data.target 目标学员ID
 * @param {string} data.description 课程描述
 * @returns {Promise} 返回创建结果
 */
export const createCourse = (data) => {
  return request({
    url: '/courses',
    method: 'POST',
    data
  })
}

/**
 * 修改课程
 * @param {Object} data 课程数据
 * @param {number} data.id 课程ID
 * @param {number} data.subject 学科ID
 * @param {string} data.name 课程名称
 * @param {number} data.price 课程价格
 * @param {number} data.target 目标学员ID
 * @param {string} data.description 课程描述
 * @returns {Promise} 返回修改结果
 */
export const updateCourse = (data) => {
  return request({
    url: '/courses',
    method: 'PUT',
    data
  })
}

/**
 * 删除课程
 * @param {number} id 课程ID
 * @returns {Promise} 返回删除结果
 */
export const deleteCourse = (id) => {
  return request({
    url: `/courses/${id}`,
    method: 'DELETE'
  })
}

/**
 * 根据学科获取课程列表
 * @param {number} subject 学科ID
 * @returns {Promise} 返回该学科的课程列表
 */
export const getCoursesBySubject = (subject) => {
  return request({
    url: `/courses/subject/${subject}`,
    method: 'GET'
  })
}